共计 3190 个字符,预计需要花费 8 分钟才能阅读完成。
前言
Tips:务必先做好域名申请以及正确绑定服务器资源,在worpress网站初始化之前就应该做好,然后通过http://domain.com 主域名访问进行初始化配置数据库等等操作,诸如xxx.domain.com、亦或是www.domain.com也不行的!!!!
本人踩坑点:使用http://www.domain.com进行初始化,wordpress记录主站域名为www.domain.com,导致后续无法选择子域名形式多站点,wordpress提示网站已经是子域名无法再选择子域名多站点,默认选择子目录形式开启多站点;
wordpress开启多站点
修改wordpress 域名根路径下的文件 wp-config.php ,在文件中寻找如下一段注释:
/* That’s all, stop editing! Happy publishing. */
在这段注释之上添加如下一行:
/* 开启多站点. */
define( ‘WP_ALLOW_MULTISITE’, true );
刷新wordpress管理界面,左侧边栏-工具-配置网络,此时出现如下页面,需要选择多站点形式,即子域名或是子目录;
我们选择子域名形式,继续配置,将如下两处配置添加到wp-config.php和.htaccess(这是隐藏文件 查询需要使用路上ls -la)文件中去:
如图,这里可以观察下这一行:`define( ‘SUBDOMAIN_INSTALL’, true );` ,为true即表示开启子域名多站点,为false即为子目录多站点
然后刷新页面,重新登陆wordpress管理页面,观察左侧边栏-工具-网络配置,此时管理页面也会发生如下变化,左上角我的站点下出现管理网络选项
此时已经完成多站点开启工作,现在可以多网站进行一些简单配置工作。
wordpress子域名多站点开启https协议
Apache2方式:
进去wordpress容器工作根目录/var/www/html,检查是否开启ssl组件:
a2enmod ssl
第一次执行会出现下面的信息:
然后重起一下wordpress服务即可,如果在此执行会出现另一段信息:
说明ssl模块已经加载完成
编辑容器中的ssl文件,编辑配置文件:
root@cd5205193f22:/var/www/html# vim /etc/apache2/sites-available/default-ssl.conf
找到SSLCertificateFile和SSLCertificateKeyFile这两个配置项,修改文件名为所申请的证书(我在腾讯云申请的一年免费证书)名称:
SSLCertificateFile /etc/ssl/certs/domain.com_bundle.pem
SSLCertificateKeyFile /etc/ssl/private/domain.com.key
将配置文件default-ssl.conf
加载进ssl模块:
root@cd5205193f22:/var/www/html# ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf
退出容器重启wordpress服务,此时完成了主站点的https的改造;
子域名站点https协议配置方法:
修改ssl-http配置文件000-default.conf ,添加新的监听域名(粉色部分作用:强制http请求转到https):
第一个域名监听:<VirtualHost *:80>ServerName domain.com<Directory “/var/www/html”>RewriteEngine onRewriteBase /# FORCE HTTPSRewriteCond %{HTTPS} !=onRewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]</Directory>ServerAdmin webmaster@localhostDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>第二个域名监听:<VirtualHost *:80>ServerName news.domain.com<Directory “/var/www/html”>RewriteEngine onRewriteBase /# FORCE HTTPSRewriteCond %{HTTPS} !=onRewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]</Directory>ServerAdmin webmaster@localhostDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
第一个域名监听:<VirtualHost *:443>ServerAdmin webmaster@localhostServerName writes.cnDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combinedSSLEngine onSSLCertificateFile /etc/ssl/certs/domain.com_bundle.pemSSLCertificateKeyFile /etc/ssl/private/domain.com.key<FilesMatch “\.(?:cgi|shtml|phtml|php)$”>SSLOptions +StdEnvVars</FilesMatch><Directory /usr/lib/cgi-bin>SSLOptions +StdEnvVars</Directory></VirtualHost>第二个域名监听:<VirtualHost *:443>ServerAdmin webmaster@localhostServerName news.writes.cnDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combinedSSLEngine onSSLCertificateFile /etc/ssl/certs/news.domain.com_bundle.pemSSLCertificateKeyFile /etc/ssl/private/news.domain.com.key<FilesMatch “\.(?:cgi|shtml|phtml|php)$”>SSLOptions +StdEnvVars</FilesMatch><Directory /usr/lib/cgi-bin>SSLOptions +StdEnvVars</Directory></VirtualHost>